iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
SideProject30

人機控制介面之開發應用系列 第 2

滑鼠指標切換兩個Button間-並呼叫螢幕小鍵盤 - C#

  • 分享至 

  • xImage
  •  

語法:C# 工具:Visual Studio 2022

private void button1_Click(object sender, EventArgs e)
{
Cursor.Position = PointToScreen(button2.Location); //滑鼠指標放在兩個按鈕之間互相跳動
textBox1.Focus();
System.Diagnostics.Process.Start(@"C:\Windows\system32\osk.exe");
}

按下button1

  1. 滑鼠游標移動到button2按鈕的位置上。
  2. 文字游標移動到textBox1的文字輸入方塊上
  3. C#環境下,可使用Process.Start來執行外部程式, @"程式所在的路徑"

private void button2_Click(object sender, EventArgs e)
{
button2.Cursor = System.Windows.Forms.Cursors.Hand; //將按鈕的滑鼠指標游標變更為手部
Cursor.Position = PointToScreen(button1.Location);
}

button2.Cursor = System.Windows.Forms.Cursors.Hand;
滑鼠游標移動到button2上方,就會產生變化成指定圖案的效果,Hand代表手掌圖案


完整程式代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 滑鼠指標放在兩個按鈕之間
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Control_MouseDown(object sender, MouseEventArgs e)
        {
            lblOutput.Text = "X=" + e.X + "Y=" + e.Y;
        }
        private void Control_MouseUp(object sender, MouseEventArgs e)
        {
            string output = "";
            switch (e.Button)
            {
                case MouseButtons.Left:
                    output = "左鍵";
                    break;
                case MouseButtons.Middle:
                    output = "中鍵";
                    break;
                case MouseButtons.Right:
                    output = "右鍵";
                    break;
            }
            this.Text = output;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Cursor.Position = PointToScreen(button2.Location);
            //滑鼠指標放在兩個按鈕之間互相跳動
            textBox1.Focus();
            System.Diagnostics.Process.Start(@"C:\Windows\system32\osk.exe");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button2.Cursor = System.Windows.Forms.Cursors.Hand; 
            //將按鈕的滑鼠指標游標變更為手部
            Cursor.Position = PointToScreen(button1.Location);
        }
    }
}

https://ithelp.ithome.com.tw/upload/images/20230914/20160744PSECJtALaM.png
在Windows10 x64,於Visual Studio中呼叫螢幕小鍵盤(OSK),方案平台一定要切換為64位元,如圖紅框處所示。

https://ithelp.ithome.com.tw/upload/images/20230914/20160744doJPjUAEIP.png
程式執行畫面


上一篇
生醫信號暨物聯網應用
下一篇
輸入XY軸座標來移動滑鼠游標 - C#
系列文
人機控制介面之開發應用37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言